From bbf3a3eebd9abc5ecc0343b6163767cc110f9985 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Sat, 17 Feb 2007 13:26:33 +0000 Subject: [PATCH] linux: vmalloc_sync_all() is not a no-op when running in PAE mode on Xen. Also vmalloc_sync_all() is only defined for x86 architectures so make use of it in driver code conditional on CONFIG_X86. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c | 2 +- linux-2.6-xen-sparse/drivers/xen/util.c | 2 ++ .../include/asm-i386/mach-xen/asm/pgtable-3level.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c b/linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c index a9e9bcf576..78639201bc 100644 --- a/linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/mm/fault-xen.c @@ -731,7 +731,7 @@ do_sigbus: force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk); } -#ifndef CONFIG_X86_PAE +#if !HAVE_SHARED_KERNEL_PMD void vmalloc_sync_all(void) { /* diff --git a/linux-2.6-xen-sparse/drivers/xen/util.c b/linux-2.6-xen-sparse/drivers/xen/util.c index 6ca8600dbe..8f5ae386ff 100644 --- a/linux-2.6-xen-sparse/drivers/xen/util.c +++ b/linux-2.6-xen-sparse/drivers/xen/util.c @@ -31,7 +31,9 @@ struct vm_struct *alloc_vm_area(unsigned long size) } /* Map page directories into every address space. */ +#ifdef CONFIG_X86 vmalloc_sync_all(); +#endif return area; } diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h index 7c3c36b286..29b4036a72 100644 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h @@ -180,6 +180,6 @@ static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot) #define __pmd_free_tlb(tlb, x) do { } while (0) -#define vmalloc_sync_all() ((void)0) +void vmalloc_sync_all(void); #endif /* _I386_PGTABLE_3LEVEL_H */ -- 2.30.2